﻿using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class Transferencia_Ubicacion : Global
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            this.lblNumero.Text = Request.Params[0].ToString();                        
            this.CrearTabla(Convert.ToInt32(this.lblNumero.Text), 0);
        }
    }


    private void CrearTabla(int transferencia, int bodegaInicial)
    {
        //Trae listado de productos de la recepcion y listado de ubicaciones activas
        DataSet ds = oGDataBlocks.GetListadoProductosTransferencia(transferencia, bodegaInicial);
        if (ds.Tables[0].Rows.Count > 0)
        {
            for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
            {
                //Construye tabla con los productos y lista de ubicaciones
                TableRow row = new TableRow();
                TableCell cell1 = new TableCell();
                TableCell cell2 = new TableCell();
                TableCell cell4 = new TableCell();
                cell1.HorizontalAlign = HorizontalAlign.Left;
                cell2.HorizontalAlign = HorizontalAlign.Left;

                cell1.Text = ds.Tables[0].Rows[i]["PRODUCTO"].ToString();
                cell2.Text = ds.Tables[0].Rows[i]["CANTIDAD"].ToString();
                cell4.Text = ds.Tables[0].Rows[i]["ID"].ToString();
                cell4.Visible = false;

                //Combo de las ubicaciones
                //if ((ds.Tables[0].Rows[i]["PRODUCTO"].ToString() == "PRODUCTO NO CREADO") || (ds.Tables[0].Rows[i]["PRODUCTO"].ToString().Contains("PRODUCTO INACTIVO")))
                //{
                //    cell3.Text = "No se puede almacenar";
                //}
                //else
                //{
                //    DropDownList drp = new DropDownList();
                //    drp.ID = "drp" + (i + 1).ToString();
                //    drp.CssClass = "Drop";
                //    drp.DataSource = ds.Tables[1];
                //    drp.DataValueField = ds.Tables[1].Columns[0].ColumnName;
                //    drp.DataTextField = ds.Tables[1].Columns[1].ColumnName;
                //    drp.DataBind();
                //    cell3.Controls.Add(drp);                    
                //}
                row.Cells.Add(cell1);
                row.Cells.Add(cell2);
                row.Cells.Add(cell4);

                this.tblProductos.Rows.Add(row);
            }
            this.tblProductos.DataBind();
            Session["TABLA_TRANSFERENCIA"] = this.tblProductos;
        }
        else
        {
            this.lblMensaje.Text = "No se encontraron productos en la transferencia número " + transferencia.ToString();
        }

    }

    protected void btnGrabar_Click(object sender, EventArgs e)
    {
        try
        {
            this.tblProductos = (Table)Session["TABLA_TRANSFERENCIA"];
            DataTable tblResultados = new DataTable();
            tblResultados.Columns.Add("PRODUCTO");
            tblResultados.Columns.Add("CANTIDAD");
            tblResultados.Columns.Add("RESULTADO");

            //Recorre la tabla y va almacenando cada registro
            int idProducto = 0;
            int idUbicacion = 0;
            string[] values = new string[3];
            for (int i = 1; i <= this.tblProductos.Rows.Count - 1; i++)
            {
                values[0] = this.tblProductos.Rows[i].Cells[0].Text;
                values[1] = this.tblProductos.Rows[i].Cells[1].Text;

                idProducto = Convert.ToInt32(this.tblProductos.Rows[i].Cells[2].Text);
                //Guarda el producto en la ubicacion seleccionada
                try
                {
                    oGDataBlocks.Transferir(idUbicacion, idProducto, Convert.ToDouble(this.tblProductos.Rows[i].Cells[1].Text));
                    values[2] = "Producto transferido";
                }
                catch (Exception ex)
                {
                    values[2] = "NO se transfirió: " + ex.Message;
                }

                tblResultados.Rows.Add(values);
            }
            this.grdResultados.DataSource = tblResultados;
            this.grdResultados.DataBind();
            this.tblProductos.Visible = false;
            this.tblProductos.DataBind();
            this.btnGrabar.ForeColor = System.Drawing.Color.Gray;
            this.btnGrabar.Enabled = false;
        }
        catch (Exception EX)
        {
            this.lblMensaje.Text = "Ocurrió un error: " + EX.Message;
        }
    }

}